/**
 * 应用配置文件
 */
export class AppConfig {
  /**
   * 后端服务器配置
   * 
   * 重要说明：
   * 1. 您的MongoDB连接字符串是：mongodb+srv://2264521353:1234567890@six0.hic1spu.mongodb.net/Maintenance
   * 2. 这个连接字符串应该在您的后端服务器中使用，而不是在前端应用中
   * 3. 请确保您有一个REST API服务器运行在某个地址上，该服务器连接到上述MongoDB数据库
   * 4. 然后将下面的BACKEND_URL修改为您的REST API服务器地址
   */
  
  // 后端REST API服务器地址
  // 示例：'http://localhost:3000/api' 或 'https://your-domain.com/api'
  public static readonly BACKEND_URL = 'http://localhost:3001/api';
  
  // API端点配置
  public static readonly API_ENDPOINTS = {
    // 认证相关
    LOGIN: '/auth/login',
    REGISTER: '/auth/register',
    LOGOUT: '/auth/logout',
    
    // 工单相关
    ORDERS: '/orders',
    ORDER_STATUS: (orderId: string) => `/orders/${orderId}/status`,
    ORDER_ASSIGN: (orderId: string) => `/orders/${orderId}/assign`,
    ORDER_EVALUATE: (orderId: string) => `/orders/${orderId}/evaluate`,
    
    // 统计相关
    STATISTICS: '/statistics',
    
    // 用户相关
    USERS: '/users',
    MAINTAINERS: '/maintainers'
  };
  
  // 请求超时配置
  public static readonly REQUEST_TIMEOUT = 30000; // 30秒
  
  // 重试配置
  public static readonly MAX_RETRIES = 3;
}

/**
 * 后端API规范说明
 * 
 * 您的后端服务器需要实现以下API端点：
 * 
 * 1. POST /api/auth/login
 *    - 请求体：{ phone: string, password: string }
 *    - 响应：{ success: boolean, data: UserModel, message: string, code: number }
 * 
 * 2. GET /api/orders
 *    - 查询参数：userId?, maintainerId?, status?, type?, page?, pageSize?
 *    - 响应：{ success: boolean, data: PagedResponse<OrderModel>, message: string, code: number }
 * 
 * 3. POST /api/orders
 *    - 请求体：CreateOrderRequest
 *    - 响应：{ success: boolean, data: OrderModel, message: string, code: number }
 * 
 * 4. PUT /api/orders/:orderId/status
 *    - 请求体：UpdateOrderStatusRequest
 *    - 响应：{ success: boolean, data: OrderModel, message: string, code: number }
 * 
 * 5. PUT /api/orders/:orderId/assign
 *    - 请求体：AssignOrderRequest
 *    - 响应：{ success: boolean, data: OrderModel, message: string, code: number }
 * 
 * 6. PUT /api/orders/:orderId/evaluate
 *    - 请求体：EvaluateOrderRequest
 *    - 响应：{ success: boolean, data: OrderModel, message: string, code: number }
 * 
 * 7. GET /api/statistics
 *    - 响应：{ success: boolean, data: StatisticsModel, message: string, code: number }
 * 
 * 所有响应都应该遵循 ApiResponse<T> 的格式
 */